<template>
  <div>
    <UploadExcel :before-upload="beforeUpload" :on-success="onSuccess" />
  </div>
</template>
<script>
import UploadExcel from '@/components/lib/UploadExcel.vue'
import { sysUserBatch } from '@/api/employees'
import dayjs from 'dayjs'
export default {
  components: {
    UploadExcel
  },
  methods: {
    async onSuccess(res) { /* 这里面装的就是拖进去的ex的内容 */
      console.log(res)
      // 数据转换
      /*
    timeOfEntry	string	非必须		入职时间
    username	string	非必须		姓名
    mobile	string	非必须		手机号
    formOfEmployment	number	非必须		聘用形式
    workNumber	string	非必须		工号
    departmentName	string	非必须		组织名称
    correctionTime	string	非必须		转正时间
    */

      /* 这里是利用map创建一个新的数组 因为导入的excel返回的对象key值为 中文 而我们要发给后台的需要是英文的
       所以我们需要利用map 创建一个新的数组*/
      const newArr = res.results.map(item => {
        return {
          timeOfEntry: this.changeExcelTime(item['入职日期']),
          username: item['姓名'], // 这里的意思就是在
          workNumber: item['工号'],
          mobile: item['手机号'],
          correctionTime: this.changeExcelTime(item['转正日期'])
        }
      })
      await sysUserBatch(newArr)
      // 提示
      this.$message.success('导入成功')
      // 跳转回员工页面
      this.$router.push('/employees')

      // console.log(newArr)
    },
    changeExcelTime(num) {
      const t = new Date((num - 1) * 24 * 60 * 60 * 1000 - 8 * 60 * 60 * 1000)
      t.setYear(t.getFullYear() - 70)
      return dayjs(t).format('YYYY-MM-DD')
    },
    beforeUpload(file) {
      // name:文件名  size:文件大小  type:文件类型
      // 限制上传文件大小与类型
      // 上传文件只能小于1m
      // console.log('上传前', file)
      const isExcel = /\.(xlsx|xls|csv)$/.test(file.name)
      if (!isExcel) {
        this.$message.error('请上传xlsx|xls|csv文件')
      }
      const limit1M = file.size / 1024 / 1024 < 1
      if (!limit1M) {
        this.$message.error('请上传1mb以内的文件')
      }

      return limit1M && isExcel
    }
  }
}
</script>
<style>
</style>
